<?php
$etat = 'index';
//gestion des associations
if(isset($_GET['action']))
{
    if($_GET['action'] == 'ajouter')
    {
        $etat = 'ajouter';
    }

    if($_GET['action'] == 'modifier' && isset($_GET['id']))
    {
        $etat = 'modifier';
    }

    if($_GET['action'] == 'supprimer' && isset($_GET['id']))
    {
        $etat = 'supprimer';
    }
}

switch($etat)
{
    case 'index':
        $associations = $associationmap->getAll();
        break;
    case 'supprimer':
        $associationsupprimee = $associationmap->getOne(html($_GET['id']));
        $associationmap->delete($associationsupprimee);
        echo 'Association supprimée<br/>';
        //redirige vers la liste des associations
        echo '<a href="index.php?target=associations">Retour</a>';
        break;
    case 'modifier':
        $associationmodifiee = $associationmap->getOne(html($_GET['id']));
    case 'ajouter':
        $form = new Formulaire('association', '#', 'POST');

        $form->addAttribut('id', 'association_form');

        //champs du formulaire
        $nomassociation = new ChampText('nom', 'Nom', true);
        $nomassociation->addValidateur(new ValidateurText(100));

        $description = new ChampTextArea('description', 'Description', false);
        $description->addValidateur(new ValidateurText(500));

        $telephone = new ChampText('telephone', 'Téléphone', true);
        $telephone->addValidateur(new ValidateurText(14));

        $fax = new ChampText('fax', 'Fax', false);
        $fax->addValidateur(new ValidateurText(14));

        $email = new ChampText('email', 'E-mail', true);
        $email->addValidateur(new ValidateurText(50));
        $email->addValidateur(new ValidateurMail());

        $responsable = new ChampText('responsable', 'Responsable', true);
        $responsable->addValidateur(new ValidateurText(50));

        $login = new ChampText('login', 'Login', true);
        $login->addValidateur(new ValidateurText(50));

        $password1 = new ChampPassword('password1', 'Password', true);
        $password1->addValidateur(new ValidateurText(20));

        $password2 = new ChampPassword('password2', 'Vérification password', true);
        $password2->addValidateur(new ValidateurText(20));

        $adresse1 = new ChampText('adresse', 'Adresse 1', true);
        $adresse1->addValidateur(new ValidateurText(200));

        $adresse2 = new ChampText('adresse2', 'Adresse 2', false);
        $adresse2->addValidateur(new ValidateurText(200));

        $listecommune = new ChampList('commune', 'Commune', false, true);
        $listecommune->addValidateur(new ValidateurNumerique());

        $submit = new ChampSubmit('submit', 'Valider');
        $submit->addAttribut('class', 'button');

        //remplissage de la liste des communes
        $communes = $communemap->getAll();

        foreach($communes as $commune)
        {
            $listecommune->addOption(null, $commune->getNom(), $commune->getId_commune());
        }

        //si modification on charge les valeurs de l'association
        if(isset($associationmodifiee) && !is_null($associationmodifiee))
        {
            
        }

        //$form->addChamp($idcategorie);
        $form->addChamp($nomassociation);
        $form->addChamp($description);
        $form->addChamp($telephone);
        $form->addChamp($fax);
        $form->addChamp($email);
        $form->addChamp($responsable);
        $form->addChamp($login);
        $form->addChamp($password1);
        $form->addChamp($password2);
        $form->addChamp($adresse1);
        $form->addChamp($adresse2);
        $form->addChamp($listecommune);
        $form->addChamp($submit);

        if(isset($_POST['formid']) && !empty($_POST['formid']) )
        {
            //formulaire soumis on recharge les valeurs et on valide le formulaire
            $nomval = html($_POST['nom']);

            $descriptionval = html($_POST['description']);
            $telephoneval = html($_POST['telephone']);
            $faxval = html($_POST['fax']);
            $emailval = html($_POST['email']);
            $responsableval = html($_POST['responsable']);
            $loginval = html($_POST['login']);
            $password1val = html($_POST['password1']);
            $password2val = html($_POST['password2']);
            $adresse1val = html($_POST['adresse']);
            $adresse2val = html($_POST['adresse2']);
            $communeval = html($_POST['commune']);

            $nomassociation->setValeur($nomval);
            $description->setValeur($descriptionval);
            $telephone->setValeur($telephoneval);
            $fax->setValeur($faxval);
            $email->setValeur($emailval);
            $responsable->setValeur($responsableval);
            $login->setValeur($loginval);
            $password1->setValeur($password1val);
            $password2->setValeur($password2val);
            $adresse1->setValeur($adresse1val);
            $adresse2->setValeur($adresse2val);
            $listecommune->setValeur($communeval);

            echo 'Commune : ' . $listecommune->getValeur() .'<br/>';
            if($form->valider() )
            {
                //vérification que les mots de passe concorde
                if($password1->getValeur() == $password2->getValeur())
                {
                    //ajout des informations à la base
                    //l'adresse
                    $nouvelleadresse = new Model_Adresse();
                    $nouvelleadresse->setId_adresse(-1);
                    $nouvelleadresse->setAdresse1($adresse1->getValeur());
                    $nouvelleadresse->setAdresse2($adresse2->getValeur());
                    $nouvelleadresse->setCommune($communemap->getOne($listecommune->getValeur()));
                    $adressemap->save($nouvelleadresse);

                    //l'association
                    $nouvelle = new Model_Association();
                    $nouvelle->setId_association(-1);
                    $nouvelle->setNom($nomassociation->getValeur());
                    $nouvelle->setDescription($description->getValeur());
                    $nouvelle->setTelephone($telephone->getValeur());
                    $nouvelle->setFax($fax->getValeur());
                    $nouvelle->setEmail($email->getValeur());
                    $nouvelle->setLogin($login->getValeur());
                    $nouvelle->setPassword($password1->getValeur());
                    $nouvelle->setResponsable($responsable->getValeur());
                    $nouvelle->setAdresse($nouvelleadresse);
                    $associationmap->save($nouvelle);
                    
                    echo "Opération effectuée<br/>";
                    //redirige vers la liste des categories
                    echo '<a href="index.php?target=associations">Retour</a>';
                }
                else
                {
                    echo "Erreurs</br>";
                    echo "Les mots de passe ne sont pas identiques";
                    echo $form->render();
                }
            }
            else
            {
                echo "Erreurs</br>";
                foreach($form->getChamps() as $champ)
                {
                    if($champ->isvalid == false)
                    {
                        echo $champ . ' : <br/>';

                        foreach($champ->getErreurs() as $erreur)
                        {
                            echo $erreur . '<br/>';
                        }
                    }
                }

                echo $form->render();
            }
        }
        else
        {
            echo $form->render();
        }
        break;
}
?>
<?php if($etat == 'index'): ?>
<table>
    <thead>
        <th>Id</th>
        <th>Nom</th>
        <th>Email</th>
    </thead>
    <tbody>
        <?php foreach($associations as $association): ?>
        <tr>
            <td><?php echo $association->getId_association()?></td>
            <td><?php echo $association->getNom()?></td>
            <td><?php echo $association->getEmail() ?></td>
            <td><a href="index.php?target=associations&action=modifier&id=<?php echo $association->getId_association()?>">Modifier</a></td>
            <td><a href="index.php?target=associations&action=supprimer&id=<?php echo $association->getId_association()?>">Supprimer</a></td>
        </tr>
        <?php endforeach ?>
    </tbody>
</table>
<a href="index.php?target=associations&action=ajouter">Ajouter</a>
<?php endif;?>
